package com.smedi.ismedi.progress.api.dto.response;

import com.smedi.ismedi.inmail.api.dto.response.CommentResponse;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

/**
 * 通知公告基础信息
 *
 * @author jiangqinxuan
 * &#064;date  2021/07/26
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = false)
public class ProcessTaskResponse implements Serializable {

    /**
     * id
     */
    @ApiModelProperty(value = "id")
    private String id;
    /**
     * 流程定义key
     */
    @ApiModelProperty(value = "流程定义key")
    private String processDefinitionKey;
    /**
     * 流程定义id
     */
    @ApiModelProperty(value = "流程定义id")
    private String processDefinitionId;
    /**
     * 根实例id
     */
    @ApiModelProperty(value = "根实例id")
    private String rootProcessInstanceId;
    /**
     * 流程实例id
     */
    @ApiModelProperty(value = "流程实例id")
    private String processInstanceId;
    /**
     * 扩展id
     */
    @ApiModelProperty(value = "扩展id")
    private String executionId;
    /**
     * 名称
     */
    @ApiModelProperty(value = "名称")
    private String name;
    /**
     * 任务定义key
     */
    @ApiModelProperty(value = "任务定义key")
    private String taskDefinitionKey;
    /**
     * 所属人
     */
    @ApiModelProperty(value = "所属人")
    private PersonResponse owner;
    /**
     * 指定人
     */
    @ApiModelProperty(value = "指定人")
    private List<PersonResponse> assignee;
    /**
     * 删除/完成等定义状态的理由
     */
    @ApiModelProperty(value = "删除/完成等定义状态的理由")
    private String deleteReason;
    /**
     * 状态
     */
    @ApiModelProperty(value = "状态")
    private String status;
    /**
     * 开始时间
     */
    @ApiModelProperty(value = "开始时间")
    private LocalDateTime startTime;
    /**
     * 结束时间
     */
    @ApiModelProperty(value = "结束时间")
    private LocalDateTime endTime;
    /**
     * 移除时间
     */
    @ApiModelProperty(value = "移除时间")
    private LocalDateTime removalTime;

    @ApiModelProperty(value = "评论")
    private List<CommentResponse> comments;
    private Map<String, String> variables;
}